﻿using System;
using RestSharp;

namespace ConsoleApplication5.Feature
{
    public static class DataObtainerFactory
    {
        public static DataObtainer CreateDataObtainer(int featureNumber, IRestClient client)
        {
            switch (featureNumber)
            {
                case 1:
                    return new FeatureOneDataObtainer(client);
                case 2:
                    return new FeatureTwoDataObtainer(client);
                case 3:
                    return new FeatureThreeDataObtainer(client);
                case 4:
                    return new FeatureFourDataObtainer(client);
                case 5:
                    return new FeatureFiveDataObtainer(client);
                case 6:
                    return new FeatureSixDataObtainer(client);
                case 7:
                    return new FeatureSevenDataObtainer(client);
                case 8:
                    return new FeatureEightDataObtainer(client);
                case 9:
                    return new FeatureNineDataObtainer(client);
                case 10:
                    return new FeatureTenDataObtainer(client);
                case 11:
                    return new FeatureElevenDataObtainer(client);
                case 12:
                    return new FeatureTwelveDataObtainer(client);
                case 13:
                    return new FeatureThirteenDataObtainer(client);
                case 14:
                    return new FeatureFourteenDataObtainer(client);
                case 15:
                    return new FeatureFifteenDataObtainer(client);
                case 16:
                    return new FeatureSixteenDataObtainer(client);
                case 17:
                    return new FeatureSeventeenDataObtainer(client);
                case 18:
                    return new FeatureEighteenDataObtainer(client);
                case 19:
                    return new FeatureNineteenDataObtainer(client);
                case 20:
                    return new FeatureTwentyDataObtainer(client);
                case 21:
                    return new FeatureTwentyOneDataObtainer(client);
                case 22:
                    return new FeatureTwentyTwoDataObtainer(client);
                case 23:
                    return new FeatureTwentyThreeDataObtainer(client);
                case 24:
                    return new FeatureTwentyFourDataObtainer(client);
                case 25:
                    return new FeatureTwentyFiveDataObtainer(client);
                case 26:
                    return new FeatureTwentySixDataObtainer(client);
                case 27:
                    return new FeatureTwentySevenDataObtainer(client);
                case 28:
                    return new FeatureTwentyEightDataObtainer(client);
                case 29:
                    return new FeatureTwentyNineDataObtainer(client);
                case 30:
                    return new FeatureThirtyDataObtainer(client);
                case 31:
                    return new FeatureThirtyOneDataObtainer(client);
                case 32:
                    return new FeatureThirtyTwoDataObtainer(client);
                case 33:
                    return new FeatureThirtyThreeDataObtainer(client);
                case 34:
                    return new FeatureThirtyFourDataObtainer(client);
                case 35:
                    return new FeatureThirtyFiveDataObtainer(client);
                case 36:
                    return new FeatureThirtySixDataObtainer(client);
                case 37:
                    return new FeatureThirtySevenDataObtainer(client);
                case 38:
                    return new FeatureThirtyEightDataObtainer(client);
                case 39:
                    return new FeatureThirtyNineDataObtainer(client);
                case 40:
                    return new FeatureFourtyDataObtainer(client);
                case 41:
                    return new FeatureFourtyOneDataObtainer(client);
                default:
                    throw new ArgumentException("unknown featureNumber value", "featureNumber");
            }
        }
    }
    /*
     * 1	popularity
2	release_date
3	runtime
4	vote_average
5	revenue
6	adult
7	director
8	the_best_similar_movie
9	isEnglish
10	isFrench
11	isGerman
12	isSpanish
13	isItalian
14	isOtherLanguage
15	isUK
16	isUS
17	isFrance
18	isGermany
19	isSpain
20	isItaly
21	isAustralia
22	isOtherCountry
23	isAction
24	isComedy
25	isDrama
26	isThriller
27	isHorror
28	isAnimation
29	isRomance
30	isWar
31	isWestern
32	isDocumentary
33	isBradPitt
34	isTomHanks
35	isWillSmith
36	isTomCruise
37	isBradleyCooper
38	isJohnnyDepp
39	isLeonardoDiCaprio
40 isOtherActor
41 isOtherGenre*/
}
